The present invention relates to a method and system for performing a preprocessing function on a file after it is opened and before it is operated on by an existing program, and to a method and system for performing a postprocessing function on a file after it is closed by the existing program.
Application programs such as the Microsoft Word word processing program, the Microsoft Excel spreadsheet program, and the Microsoft PowerPoint presentation program, all are designed to open a file (or create a new one), perform certain functions on the file, and then close the file when the user has finished his tasks. These application programs all share many common traits and functionality, and in fact are designed to be part of a suite of tools, which is referred to as Microsoft Office (other vendors feature similar suites with different names, but the same intended functionality). In the case of Word, the program typically opens a file from storage, edits the file for example by adding text, optionally prints the file, and then saves and closes the file. Since these application programs are obtained in a compiled version, it is not possible for users to be able to modify the functionality of the application, and the user can only perform the functions provided by the vendor.
It is desired to be able to give a user an opportunity to perform certain “value-added” operations on a file that are not specifically related to the application program. For example, it is often desired to encrypt a data file for security purposes. Encryption techniques are of course well known, and several discrete application programs exist that allow the user to execute encryption and decryption steps on a data file. That is, the user would have to run the encryption program on the file on disk, and then run the decryption program prior to running the word processing application so that the word processing program may operate on the file “in the clear”. The user would again have to run the encryption program on the file in order to ensure its security.
Likewise, other preprocessing and postprocessing operations may need to be performed on a file, such as compression, language translation, file backup, anti-virus analysis, and debugging. While certain programs exist for some of these applications, they all suffer from the same problem of having to be separately executed by a user. Since a user may forget to do these operations, this paradigm is undesirable.
Thus, the inventors have recognized the need for being able to seamlessly integrate one or several preprocessing and postprocessing functions into an existing application so that they are automatically performed on a file without requiring a user to affirmatively execute a separate program. In particular, it is desired to be able to add this seamless functionality to existing programs such as the Microsoft Office programs, which have a large installed user base. Since the user will have the Office application program only in a complied version, there exist no solution today that solves the problems described above.